The present invention relates generally to distributed data processing. More particularly, the invention relates to a decentralized file system implemented on remotely encrypted data storage devices to provide secure data sharing among clients of the file system.
Distributed file systems allow networked computers to access remote storage devices as if the devices were on a local file system. These file systems allow for sharing of data among networked clients. Additionally, a user can access networked data from other networked computers in the same way she accesses it from her own computer. This type of network file sharing is becoming increasingly prevalent as the computing industry becomes more network centric.
FIG. 1 shows a typical prior art distributed file system 1. The system includes several computers 2 and a file server 3 attached to a network 4. The computers 2 (referred to as clients) and server 3 communicate with each other over the network 4 using a network protocol such as Ethernet. A storage unit 5 is attached to the server 3 for storing data accessible to the computers. Each computer 2 might include its own storage unit 6. Typically, a computer 2 would send a request to the server 3 when it need some data stored on the storage unit 5. The server fetches the required data and sends it to the requesting computer. In some cases, data is stored in multiple parts each residing on a different storage unit rather than on a single unit. A distributed file system is then needed to manage the storing, updating, and accessing operations concerning such scattered data.
Distributed file systems have many security problems that local file systems do not have. The network itself is susceptible to security risks such as snooping (unauthorized break-ins), spoofing (impersonation), and packet eavesdropping (unauthorized receipt of data being transmitted over the network). The identity of a network client can be spoofed such as where a user id can be forged in requests to the file server. In addition, the distributed file systems still have the vulnerabilities of the local file systems. The disk containing file data can be stolen and mounted on another machine, bypassing the protection afforded by the operating system. The distributed file server can be broken into giving the attacker root access to the disk. Backup tapes are not generally encrypted and data is easily accessed if they are stolen.
There are three security areas that existing distributed file systems either fail to address, or address inadequately: confidentiality, integrity and authentication. Confidentiality refers to the requirement that the file system data can only be read by the parties that are intended to have access to the data. Integrity means that it is possible for the parties accessing the data to verify that the data read was not altered. Authentication requires that the exchanges between the data repositories and the file system clients are done such that both parties of the exchanges are able to verify the messages involved came from the other.
Network File System (NFS) was an early network file system that has gained wide spread adoption. (See, for example, reference 1). When NFS was introduced, it relied on the operating system to enforce confidentiality, integrity, and authentication. It allowed users to access the network file system as if it were a local file system. Network communications were unencrypted and unauthenticated. The administrators of the local machine could become any user on the machine and gain access to the users files. Other machines on the network could disguise as another machine and fool the NFS server. Since packets were not encrypted across the network, an eavesdropper could view and alter the contents of the packets. Authentication was later added to version 3 of the NFS protocol.
Another file system, the Andrew File System (AFS, reference 2), and its follow-on Decorum File System (DFS, reference 3) are other network file systems that allow users access to the file systems as if they were local file systems. AFS relies on the authorization service Kerberos (reference 4) to authenticate exchanges between the network client and the file system. AFS does not encrypt the file system data. So, an eavesdropper can view the data that is requested or sent to an AFS server. Version 1.2 of DFS added the option of encryption and integrity guarantees (reference 5).
Cryptographic File System (CFS, reference 6) is a file system that acts as a local file system and uses another shadow file system as a repository of data. Each directory of the file system has an encryption key associated that is used to encrypt important meta-data (such as filenames and symbolic links) and file data. CFS uses a modified Data Encryption Standard (reference 7) to perform the encryption. Data is encrypted and then stored in the shadow file system. Each file in CFS has a corresponding file in the shadow file system. Using NFS as the shadow file system allows CFS to act as a network file system. Since the shadow file system is the repository of data, it must provide authentication for changes to the files. If NFS is used as the shadow file system, for example, CFS can be subject to replays (i.e., a copy of the data is presented to pretend that it is coming from the originator).
Accordingly, there is still a need for a decentralized file system based on a network of secure storage devices in which data can be moved, archived, and backed up in a secure manner, files can be securely copied directly from one device to another, and all data encryption is handled by the clients, rather than the devices, to overcome the above-described security problems.
1. Sandberg, R., et al., xe2x80x9cDesign and Implementation of the Sun Network Filesystem,xe2x80x9d USENIX Conference Proceedings, USENIX Association, Berkeley, Calif., Summer 1985.
2. Howard, J. H. et al., xe2x80x9cScale and Performance in a Distributed File System, ACM Transactions on Computer Systems, Vol. 6, No. 1, February 1988.
3. Kazer, M., et al., xe2x80x9cDEcorum File System Architectural Overviewxe2x80x9d, USENIX Summer Conference, June 1990.
4. Steiner, J. G., xe2x80x9cKerberos: An Authentication Service For Open Network Systems,xe2x80x9d Winter USEIX, 1988, Dallas, Tex.
5. Everhart, C., xe2x80x9cSecurity Enhancements for DCE DFSxe2x80x9d, OSF RFC 90.0, February 1996.
6. Blaze, M., xe2x80x9cA Cryptographic File System for Unixxe2x80x9d, First ACM Conference on Communications and Computing Security, November 1993.
7. Data Encryption Standard, National Bureau of Standards, Federal Information Processing Standards Publication Number 46, National Technical Information Service, Springfield, Va., Jan. 15, 1977.
The present invention relates to a decentralized file system based on services provided by a network of secure remotely encrypted storage devices, and methods for securely storing, accessing, and updating data stored in the file system. The file system allows secure movement of data and metadata between the network clients and the network storage devices. Data is accessible only to authorized network clients in possession of appropriate encryption and decryption keys, where all encryption and decryption of data and metadata are performed by the network clients. The storage devices themselves do not have any encryption capabilities. Files can be copied directly from one storage device to another storage device in a secure manner. The network client""s only involvement would be to initiate the action.
The basic file system includes a network, a network client that requests data from the system, a secure network storage device serving as a repository of the system""s data, a key manager for controlling data access keys, and a lock manager for handling consistency of the files. The key manager maintains an access list of subscribers.
The file structure of the system is hierarchically composed of files and directories. Each directory entry references a file or another directory. Files may be created, read, written, deleted, and truncated. A network user may have read or write access to a file. In addition a user may have lookup access to a directory. Access is controlled using keys and access lists. The access keys and lists are maintained by a key manager which controls the key distribution. Files or directories are composed of one or more streams. Each stream logically partitions the data associated with the respective file or directory, and is physically composed of data objects on the device.
Each network storage device is an independent entity on which the unit of storage is a network object. The devices authorize network access to the network objects using message authentication codes. When a network client wants to update file system data, it reads the network object to be changed, decrypts the data, performs the change, and re-encrypts the data. It then sends a request to the network storage device to replace the old data, and authenticates the request using a change key corresponding to the object.
Each directory entry is a set of stream stripe sets each referring to a group of directory data objects on the storage device. Each directory data object has an encrypted parent reference and multiple entries. These entries contain metadata of a file and encrypted stream locations in the form of a set of stream stripe sets associated with respective byte ranges on the device. If the directory entry refers to another directory, then the stream locations are given as another stream stripe set of the same structure. If the directory entry refers to a file, then each stream stripe set corresponds to a group of file data objects on the device, and includes several stripes each representing a given range of bytes of the stream on the device. Each stripe has a list of the associated file data objects, a stride 65, and a chunk size. The object list points to the data objects in the stream. The stride is the number of bytes that are written to a network object before moving to the next object. A client would need an encryption key and file data object access keys to access the file data objects associated with a file. These keys are managed by the key manager.
Additional objects and advantages of the present invention will be set forth in the description which follows, and in part will be obvious from the description and with the accompanying drawing, or may be learned from the practice of this invention.